package io.leo.leoutils;

public class StringUtils {
    /**
     * 比较第一个参数是否在后面的字符串列表里
     * @param str 待比较的字符串
     * @param strlist 字符串列表
     * @return 是否存在
     */
    public static boolean in(String str,String...strlist){
        for (String s:strlist)
            if (str.equals(s))
                return true;
        return false;
    }

    /**
     * 判断字符串是否为空
     * @param str 字符串
     * @return 如果为Null或空串返回true否则false
     */
    public static boolean isEmpty(String str){
        return str==null||str.equals("");
    }

    public static boolean isEmpty(CharSequence charSequence){
        return charSequence==null||charSequence.toString().equals("");
    }


    /**
     * 第一个字符串非空并且等于第二个
     * @param string
     * @param cmpString
     * @return
     */
    public static boolean notEmptyAndEquals(String string,String cmpString){
        return !isEmpty(string)&&string.equals(cmpString);
    }

    public static boolean notEmptyAndEquals(CharSequence charSequence,String cmpString){
        return !isEmpty(charSequence)&&charSequence.toString().equals(cmpString);
    }

    public static boolean notEmptyAndEquals(CharSequence charSequence,CharSequence cmpSequence){
        return !isEmpty(charSequence)&&!isEmpty(cmpSequence)&&charSequence.toString().equals(charSequence.toString());
    }
    /**
     * 重复字符串
     * @param str 字符串
     * @param count 重复多少次
     * @return
     */
    public static String repeat(String str,int count){
        return repeat(str,"",count);
    }

    /**
     * 重复字符串
     * @param str 字符串
     * @param splitor 分隔符
     * @param count 重复次数
     * @return
     */
    public static String repeat(String str,String splitor,int count){
        StringBuffer buf = new StringBuffer("");
        for (int i=0;i<count;i++){
            buf.append(str);
            if (i<count-1)
                buf.append(splitor);
        }
        return buf.toString();
    }

    /**
     * 其中如果有一个为空的字符串就返回true
     * @param args
     * @return
     */
    public static boolean hasOneIsEmpty(String...args){
        for (String str:args)
            if (isEmpty(str))return true;
        return false;
    }

    /**
     * 将String数组转成字符串
     * @param array 数组
     * @param splior 两个元素之间的分割
     * @return
     */
    public static String fromArray(String[] array,String splior){
        StringBuffer buffer = new StringBuffer();
        for (int i=0;i<array.length;i++){
            buffer.append(array[i]);
            if (i<array.length-1)
                buffer.append(splior);
        }
        return buffer.toString();
    }


    /**
     * 取字符串左边
     * @param str
     * @param len
     * @return
     */
    public static String getLeft(String str,int len){
        if (str.length()<len)return str;
        return str.substring(0,len);
    }
}
